<html><body><pre class="prettyprint">
        // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)

        #ifndef UNITY_STANDARD_CONFIG_INCLUDED
        #define UNITY_STANDARD_CONFIG_INCLUDED
        
        // Define Specular cubemap constants
        #ifndef UNITY_SPECCUBE_LOD_EXPONENT
        #define <a name="UNITY_SPECCUBE_LOD_EXPONENT">UNITY_SPECCUBE_LOD_EXPONENT</a> (1.5)
        #endif
        #ifndef UNITY_SPECCUBE_LOD_STEPS
        #define <a name="UNITY_SPECCUBE_LOD_STEPS">UNITY_SPECCUBE_LOD_STEPS</a> (6)
        #endif
        
        // Energy conservation for Specular workflow is Monochrome. For instance: Red metal will make diffuse Black not Cyan
        #ifndef UNITY_CONSERVE_ENERGY
        #define <a name="UNITY_CONSERVE_ENERGY">UNITY_CONSERVE_ENERGY</a> 1
        #endif
        #ifndef UNITY_CONSERVE_ENERGY_MONOCHROME
        #define <a name="UNITY_CONSERVE_ENERGY_MONOCHROME">UNITY_CONSERVE_ENERGY_MONOCHROME</a> 1
        #endif
        
        // "platform caps" defines: they are controlled from TierSettings (Editor will determine values and pass them to compiler)
        // UNITY_SPECCUBE_BOX_PROJECTION:                   TierSettings.reflectionProbeBoxProjection
        // UNITY_SPECCUBE_BLENDING:                         TierSettings.reflectionProbeBlending
        // UNITY_ENABLE_DETAIL_NORMALMAP:                   TierSettings.detailNormalMap
        // UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS:  TierSettings.semitransparentShadows
        
        // disregarding what is set in TierSettings, some features have hardware restrictions
        // so we still add safety net, otherwise we might end up with shaders failing to compile
        
        #if defined(SHADER_TARGET_SURFACE_ANALYSIS)
            // For surface shader code analysis pass, disable some features that don't affect inputs/outputs
            #undef UNITY_SPECCUBE_BOX_PROJECTION
            #undef UNITY_SPECCUBE_BLENDING
            #undef UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS
        #elif SHADER_TARGET < 30
            #undef UNITY_SPECCUBE_BOX_PROJECTION
            #undef UNITY_SPECCUBE_BLENDING
            #undef UNITY_ENABLE_DETAIL_NORMALMAP
            #ifdef _PARALLAXMAP
                #undef _PARALLAXMAP
            #endif
        #endif
        #if (SHADER_TARGET < 30) || defined(SHADER_API_GLES)
            #undef UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS
        #endif
        
        #ifndef UNITY_SAMPLE_FULL_SH_PER_PIXEL
            // Lightmap UVs and ambient color from SHL2 are shared in the vertex to pixel interpolators. Do full SH evaluation in the pixel shader when static lightmap and LIGHTPROBE_SH is enabled.
            #define <a name="UNITY_SAMPLE_FULL_SH_PER_PIXEL">UNITY_SAMPLE_FULL_SH_PER_PIXEL</a> (LIGHTMAP_ON && LIGHTPROBE_SH)
        
            // Shaders might fail to compile due to shader instruction count limit. Leave only baked lightmaps on SM20 hardware.
            #if UNITY_SAMPLE_FULL_SH_PER_PIXEL && (SHADER_TARGET < 25)
                #undef UNITY_SAMPLE_FULL_SH_PER_PIXEL
                #undef LIGHTPROBE_SH
            #endif
        #endif
        
        #ifndef UNITY_BRDF_GGX
        #define <a name="UNITY_BRDF_GGX">UNITY_BRDF_GGX</a> 1
        #endif
        
        // Orthnormalize Tangent Space basis per-pixel
        // Necessary to support high-quality normal-maps. Compatible with Maya and Marmoset.
        // However xNormal expects oldschool non-orthnormalized basis - essentially preventing good looking normal-maps :(
        // Due to the fact that xNormal is probably _the most used tool to bake out normal-maps today_ we have to stick to old ways for now.
        //
        // Disabled by default, until xNormal has an option to bake proper normal-maps.
        #ifndef UNITY_TANGENT_ORTHONORMALIZE
        #define <a name="UNITY_TANGENT_ORTHONORMALIZE">UNITY_TANGENT_ORTHONORMALIZE</a> 0
        #endif
        
        
        // Some extra optimizations
        
        // Simplified Standard Shader is off by default and should not be used for Legacy Shaders
        #ifndef UNITY_STANDARD_SIMPLE
            #define <a name="UNITY_STANDARD_SIMPLE">UNITY_STANDARD_SIMPLE</a> 0
        #endif
        
        // Setup a new define with meaningful name to know if we require world pos in fragment shader
        #if UNITY_STANDARD_SIMPLE
            #define <a name="UNITY_REQUIRE_FRAG_WORLDPOS">UNITY_REQUIRE_FRAG_WORLDPOS</a> 0
        #else
            #define <a name="UNITY_REQUIRE_FRAG_WORLDPOS">UNITY_REQUIRE_FRAG_WORLDPOS</a> 1
        #endif
        
        // Should we pack worldPos along tangent (saving an interpolator)
        // We want to skip this on mobile platforms, because worldpos gets packed into mediump
        #if UNITY_REQUIRE_FRAG_WORLDPOS && !defined(_PARALLAXMAP) && !defined(SHADER_API_MOBILE)
            #define <a name="UNITY_PACK_WORLDPOS_WITH_TANGENT">UNITY_PACK_WORLDPOS_WITH_TANGENT</a> 1
        #else
            #define UNITY_PACK_WORLDPOS_WITH_TANGENT 0
        #endif
        
        #endif // UNITY_STANDARD_CONFIG_INCLUDED
</pre>
<script src="https://xibanya.github.io/ShaderTutorials/CGIncludes/code-prettify/loader/run_prettify.js?skin=vscode"></script>
<script src="https://xibanya.github.io/ShaderTutorials/CGIncludes/Data/link_definitions.js"></script>
</body></html>